package persistencia.cv;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedList;

import negocio.cv.Condicion;
import negocio.cv.Institucion;
import negocio.cv.Titulo;
import persistence.DBManager;

public class DAOInstitucion implements DAOInterface {

	private DBManager manager;

	public DAOInstitucion(DBManager manager) {
		this.manager = manager;
	}
	@Override
	public void delete(Object b) {
		// TODO Auto-generated method stub

	}

	@Override
	public Institucion get(String businessId) {
		Institucion i = null;
		ResultSet rs = null;
		String query;
		int id = Integer.parseInt(businessId);
		try {
			query = "call tesis.institucion_get("+id+",@nombre,@idtipo)";
			rs = manager.openCallableQuery(query);
			rs.first();
			i=new Institucion(id,rs.getObject(1).toString());
			

		} catch (SQLException exc) {
			exc.printStackTrace();
		}
		return i;
	}
	@Override
	public Collection getAll() {
		// TODO Auto-generated method stub
		return null;
	}

	
	/**
	 * Retorna todas las instituciones asociadas a un tipo de titulo
	 * @param businessId: el id del tipo de titulo
	 * @return
	 */
	public LinkedList<Institucion> getAll(String businessId) {
		int id=Integer.parseInt(businessId);
		ResultSet rs = null;
		LinkedList<Institucion> instituciones=new LinkedList<Institucion>();
		Institucion inst=null;
		String query;
	   
	        try {
	            query="SELECT T.idinstitucion, T.nombre"
	                   +" FROM tesis.institucion T where T.idtipoestudio="+id;
	          rs=manager.openQuery(query);  
	          
	          while(rs.next())
	          { 
	        	  inst=new Institucion(rs.getInt(1),rs.getObject(2).toString());
	        	  instituciones.add(inst);
	          }
	        }catch(SQLException e)
	        {
	        	e.printStackTrace();
	        }
	        return instituciones; 
	}
	@Override
	public int insert(Object b) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public void update(Object b) {
		// TODO Auto-generated method stub

	}

}
